diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 1d514e9..e562a8a 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -90,4 +90,14 @@
 config PHY_XILINX
 	bool "Xilinx Ethernet PHYs support"
 
+config PHY_FIXED
+	bool "Fixed-Link PHY"
+	depends on DM_ETH
+	help
+	  Fixed PHY is used for having a 'fixed-link' to another MAC with a direct
+	  connection (MII, RGMII, ...).
+	  There is nothing like autoneogation and so
+	  on, the link is always up with fixed speed and fixed duplex-setting.
+	  More information: doc/device-tree-bindings/net/fixed-link.txt
+
 endif #PHYLIB
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index d372971..88c00a5 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -28,3 +28,4 @@
 obj-$(CONFIG_PHY_XILINX) += xilinx_phy.o
 obj-$(CONFIG_PHY_VITESSE) += vitesse.o
 obj-$(CONFIG_PHY_MSCC) += mscc.o
+obj-$(CONFIG_PHY_FIXED) += fixed.o
diff --git a/drivers/net/phy/fixed.c b/drivers/net/phy/fixed.c
new file mode 100644
index 0000000..df82356
--- /dev/null
+++ b/drivers/net/phy/fixed.c
@@ -0,0 +1,82 @@
+/*
+ * Fixed-Link phy
+ *
+ * Copyright 2017 Bernecker & Rainer Industrieelektronik GmbH
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <config.h>
+#include <common.h>
+#include <phy.h>
+#include <dm.h>
+#include <fdt_support.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int fixedphy_probe(struct phy_device *phydev)
+{
+	struct fixed_link *priv;
+	int ofnode = phydev->addr;
+	u32 val;
+
+	/* check for mandatory properties within fixed-link node */
+	val = fdt_getprop_u32_default_node(gd->fdt_blob,
+					   ofnode, 0, "speed", 0);
+	if (val != SPEED_10 && val != SPEED_100 && val != SPEED_1000) {
+		printf("ERROR: no/invalid speed given in fixed-link node!");
+		return -EINVAL;
+	}
+
+	priv = malloc(sizeof(*priv));
+	if (!priv)
+		return -ENOMEM;
+	memset(priv, 0, sizeof(*priv));
+
+	phydev->priv = priv;
+	phydev->addr = 0;
+
+	priv->link_speed = val;
+	priv->duplex = fdtdec_get_bool(gd->fdt_blob, ofnode, "full-duplex");
+	priv->pause = fdtdec_get_bool(gd->fdt_blob, ofnode, "pause");
+	priv->asym_pause = fdtdec_get_bool(gd->fdt_blob, ofnode, "asym-pause");
+
+	/* fixed-link phy must not be reset by core phy code */
+	phydev->flags |= PHY_FLAG_BROKEN_RESET;
+
+	return 0;
+}
+
+int fixedphy_startup(struct phy_device *phydev)
+{
+	struct fixed_link *priv = phydev->priv;
+
+	phydev->asym_pause = priv->asym_pause;
+	phydev->pause = priv->pause;
+	phydev->duplex = priv->duplex;
+	phydev->speed = priv->link_speed;
+	phydev->link = 1;
+
+	return 0;
+}
+
+int fixedphy_shutdown(struct phy_device *phydev)
+{
+	return 0;
+}
+
+static struct phy_driver fixedphy_driver = {
+	.uid		= PHY_FIXED_ID,
+	.mask		= 0xffffffff,
+	.name		= "Fixed PHY",
+	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII,
+	.probe		= fixedphy_probe,
+	.startup	= fixedphy_startup,
+	.shutdown	= fixedphy_shutdown,
+};
+
+int phy_fixed_init(void)
+{
+	phy_register(&fixedphy_driver);
+	return 0;
+}
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 8db6574..8bacd99 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -515,7 +515,9 @@
 #ifdef CONFIG_PHY_MSCC
 	phy_mscc_init();
 #endif
-
+#ifdef CONFIG_PHY_FIXED
+	phy_fixed_init();
+#endif
 	return 0;
 }
 
@@ -854,9 +856,24 @@
 		struct eth_device *dev, phy_interface_t interface)
 #endif
 {
-	struct phy_device *phydev;
+	struct phy_device *phydev = NULL;
+#ifdef CONFIG_PHY_FIXED
+	int sn;
+	const char *name;
+	sn = fdt_first_subnode(gd->fdt_blob, dev->of_offset);
+	while (sn > 0) {
+		name = fdt_get_name(gd->fdt_blob, sn, NULL);
+		if (name != NULL && strcmp(name, "fixed-link") == 0) {
+			phydev = phy_device_create(bus,
+						   sn, PHY_FIXED_ID, interface);
+			break;
+		}
+		sn = fdt_next_subnode(gd->fdt_blob, sn);
+	}
+#endif
+	if (phydev == NULL)
+		phydev = phy_find_by_mask(bus, 1 << addr, interface);
 
-	phydev = phy_find_by_mask(bus, 1 << addr, interface);
 	if (phydev)
 		phy_connect_dev(phydev, dev);
 	else
